﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OwnZTec.LojaDelivery.Data;
using Telerik.WinControls.UI;

namespace OwnZTec.LojaDelivery.UI.WinForms
{
    public partial class FrmEntregaRetorno : OwnZForm
    {
        public FrmEntregaRetorno()
        {
            InitializeComponent();
            this.ConfigurarFormFilho();
        }

        private tbVenda Venda { get; set; }
        private tbEntrega Entrega { get; set; }

        List<listaPedidosRetorno> listaEntrega;


        private void MostraCombo(object sender, EventArgs e)
        {
            cboFuncionarios.Visible = rbMotorista.Checked;
            cboFuncionarios.SelectedIndex = 0;
            AtualizaGrid();
        }

        private void AtualizaGrid()
        {
            Cursor = Cursors.WaitCursor;

            listaEntrega = new List<listaPedidosRetorno>();
            listaPedidosRetorno listaItem = new listaPedidosRetorno();
            //Venda = (tbVenda)Contexto.Db.tbVendas.Where(p => p.statusVenda == "E");
            foreach (var item in Contexto.Db.tbVendas.Where(p => p.statusVenda == "E").ToList())
            {
                listaItem = new listaPedidosRetorno();
                listaItem.data = item.dtVenda.ToString("dd/MM/yyyy");
                listaItem.idPedido = item.idVenda;
                listaItem.numPedido = Contexto.Db.tbVendas.First(p => p.idVenda == item.idVenda).numeroVenda.ToString();
                listaItem.idCliente = item.idCliente;
                listaItem.cliente = Contexto.Db.tbClientes.First(p => p.idCliente == item.idCliente).desCliente;
                listaItem.valorTotal = item.valorVenda;
                listaItem.qtdeCaixa = 0;
                listaItem.Motorista = Contexto.Db.tbFuncionarios.First(p => p.idFuncionario == item.idMotorista).desNomeFuncionario;
                if (rbTodos.Checked)
                    listaEntrega.Add(listaItem);
                else
                {
                    if (item.idMotorista == cboFuncionarios.SelectedValue.ParaInt())
                        listaEntrega.Add(listaItem);
                }
            }

            gvPedidos.DataSource = listaEntrega;

            Cursor = Cursors.Arrow;
        }

        private void FrmEntregaRetorno_Load(object sender, EventArgs e)
        {
            CarregaFuncionarios();
            cboFuncionarios.DropDownListElement.AutoCompleteSuggest.SuggestMode = SuggestMode.Contains;
            AtualizaGrid();

            Contexto.MainForm.Cursor = Cursors.Arrow;
        }

        private void CarregaFuncionarios()
        {
            cboFuncionarios.DataSource = Contexto.Db.tbFuncionarios.Where(p => p.flgEntrega == true);
            cboFuncionarios.ValueMember = "idFuncionario";
            cboFuncionarios.DisplayMember = "desNomeFuncionario";
        }

        private void cboFuncionarios_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            AtualizaGrid();
        }

        private void btnBaixarTodos_Click(object sender, EventArgs e)
        {
            listaEntrega = (List<listaPedidosRetorno>)gvPedidos.DataSource;
            foreach (listaPedidosRetorno item in listaEntrega)
            {
                item.Marcar = true;
                item.Total = true;
                item.Retorno = item.valorTotal.ToString("C2");
            }

            gvPedidos.DataSource = null;
            gvPedidos.DataSource = listaEntrega;
        }
    }

    public class listaPedidosRetorno
    {
        public bool Marcar { get; set; }
        public string data { get; set; }
        public int idPedido { get; set; }
        public string numPedido { get; set; }
        public int idCliente { get; set; }
        public string cliente { get; set; }
        public decimal valorTotal { get; set; }
        public int qtdeCaixa { get; set; }
        public bool Total { get; set; }
        public bool Parcial { get; set; }
        public string Retorno { get; set; }
        public string Motorista { get; set; }
    }
}
